package com.yq.design.singleton.enumClass;

/**
 * @ClassName Singleton
 * @Description TODO
 * @Author yaoqiang
 * @Date 2021/3/8 18:16
 * @Version 1.0
 * 声明一个枚举类，里面一个INSTANCE,直接对比Singleton.INSTANCE发现是一个，hashcode也一样，调方法也是一样
 * 能避免多线程同步问题，而且还自动支持序列化机制，防止反序列化重新创建新的对象，绝对防止多次实例化
 * 单例的特点：1构造器私有，2实例化变量引用私有，3获取实例方法公有
 */
public enum Singleton {
    INSTANCE;

    public void say() {
        System.out.println("say()");
    }
}
